"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/6/9 15:00
@Description : 
正则表达式:  字符串编写的一个规则表达形式

python  re  正则模块
"""
str_info = "2a511 hello 2511 python 2512"

# hello 是否在字符串中
result = "hello" in str_info
print(result)
index = str_info.index("python")
print(index)

# 获取字符串中所有的数字   str api
import re

# 参数1  正则表达式
result = re.findall(r'\d+', str_info)
print(result)

"""
正则表达式的编写
1.固定字符   2511  python
2. .   任意一个字符 不包含换行\n
3. []   字符集   匹配一个中括号中出现的任意原子字符  a-z  abc  A-Z  0-9 123   [^a-z]
4. {}   长度限定 {3} {3,5} {3,}  {3,5}?
5. *  
6. ?      
7. +
8. ^  以什么开始
9. $  以什么结束

"""

# .
str_info = "apple ape agree age amaze animate advertise a\ne"
# result = re.findall(r'a.e', str_info)
# result = re.findall(r'a..e', str_info)
# result = re.findall(r'a...e', str_info)
result = re.findall(r'a....e', str_info)
print(result)
print('------------------------------------------------')
# [] 字符集   a b ... z  任意一个字符
str_info = 'apple ape agree age amaze animate advertise a\ne  a@e a$e a%e a0e a1e aBe'
# result = re.findall(r'a[a-z]e',str_info)
# result = re.findall(r'a[0-9@$%\n]e',str_info)
result = re.findall(r'a[0-9a-zA-Z]e', str_info)
print(result)

print('--------------------------------------------------')
# {} 数量限定
str_info = 'apple ape agree age amaze animate advertise ae  a@e a$e a%e a0e a1e aB2e'
# result = re.findall(r'a[a-z]{2}e',str_info)
# result = re.findall(r'a[a-z]{2,8}e',str_info)
# 除了 a-z之间的字符
# result = re.findall(r'a[^a-z]{2}e', str_info)


#  .  数量词    默认使用贪婪模式
# result = re.findall(r'a.{3,}e', str_info)
# 取消贪婪模式  ?
result = re.findall(r'a.{3,}?e', str_info)
print(result)
print('---------------------------------------')
"""
量词
?  
*  
+   
"""
# *   零次 或 无穷次
str_info = 'aeaxdfge'
# result = re.findall(r'a.*e', str_info)

# +   一次 或 无穷次     ?取消贪婪
# result = re.findall(r'a.+?e', str_info)

# ? 量词    零次或1次
result = re.findall(r'a.?e', str_info)
print(result)

# ^  $
str_info = 'blog/2025/11/'
result = re.findall(r'^blog/[0-9]{4}/[0-9]{2}/$', str_info)
print(result)